package com.eastfair.home.service;

import com.eastfair.home.entity.ReportDrawingAudit;
import com.eastfair.home.entity.ReportDrawingCategoryAudit;
import com.eastfair.home.entity.ReportSpaceAudit;
import com.eastfair.venueservice.dto.HomeBuilderDrawingCategoryAuditDTO;
import com.eastfair.venueservice.enumeration.HomeBuilderDrawingCategoryAuditDrawingSourceEnum;

import java.util.List;

/**
 * 主场搭建商图纸分类审核 service.
 *
 * @author dqq
 * @date 2023 /4/28
 */
public interface HomeHomeBuilderDrawingCategoryAuditService {

    /**
     * 批量保存主场搭建商图纸分类审核记录.
     *
     * @param list the list
     * @return the r
     */
    boolean saveBatch(List<HomeBuilderDrawingCategoryAuditDTO> list);

    /**
     * 搭建商图纸分类审核记录，图纸审核记录，报馆审核记录 保存 主场搭建商图纸分类审核记录.
     *
     * @param drawingCategoryAuditList the drawing category audit list
     * @param drawingAuditList         the drawing audit list
     * @param reportSpaceAudit         the report space audit
     * @return the boolean
     */
    boolean saveBatchByReportDrawingCategoryAuditList(List<ReportDrawingCategoryAudit> drawingCategoryAuditList, List<ReportDrawingAudit> drawingAuditList, ReportSpaceAudit reportSpaceAudit);

    /**
     * 搭建商图纸分类审核记录，图纸审核记录 保存 主场搭建商图纸分类审核记录.
     *
     * @param drawingCategoryAuditList the drawing category audit list
     * @param drawingAuditList         the drawing audit list
     * @return the boolean
     */
    boolean saveBatchByReportDrawingCategoryAuditList(List<ReportDrawingCategoryAudit> drawingCategoryAuditList, List<ReportDrawingAudit> drawingAuditList);

    /**
     * 报馆审核记录 保存 主场搭建商图纸分类审核记录.
     *
     * @param reportSpaceAudit the report space audit
     * @return the boolean
     */
    @Deprecated
    boolean saveBatchByReportSpaceAudit(ReportSpaceAudit reportSpaceAudit);

    /**
     * 报馆ID删除图纸分类审核.
     *
     * @param reportId      the report id
     * @param drawingSource the drawing source
     * @return the r
     */
    boolean removeByReportId(Long reportId, HomeBuilderDrawingCategoryAuditDrawingSourceEnum drawingSource);
}